import { getReadTime } from './localStorage'
export const FONT_SIZE_LIST = [  //字号大小
    {fontSize: 12},
    {fontSize: 14},
    {fontSize: 16},
    {fontSize: 18},
    {fontSize: 20},
    {fontSize: 22},
    {fontSize: 24},
]

export const FONT_FAMILY = [ //字体类型
    { font: 'Default' },
    { font: 'Cabin' },
    { font: 'Days One' },
    { font: 'Montserrat' },
    { font: 'Tangerine' },
]

export function themeList(vue) {  //背景主题,传入vue实例
    return [
        {
            alias:vue.$t('book.themeDefault'),//通过实例本身获取国际语言内容
            name: 'Default', //备注名
            style: { //主题样式
                body: {
                    'color' : '#4c5059',
                    'background' : '#cecece'
                }
            }
        },
        {
            alias:vue.$t('book.themeGold'),
            name: 'Gold',
            style: {
                body: {
                    'color' : '#5c5b56',
                    'background' : '#c6c2b6'
                }
            }
        },
        {
            alias:vue.$t('book.themeEye'),
            name: 'Eye',
            style: {
                body: {
                    'color' : '#404c42',
                    'background' : '#a0b99f'
                }
            }
        },
        {
            alias:vue.$t('book.themeNight'),
            name: 'Night',
            style: {
                body: {
                    'color' : '#cecece',
                    'background' : '#000000'
                }
            }
        }
    ]
}

export function addCss(href) { //添加菜单和标题CSS样式 
    const link = document.createElement('link') //创建link标签
    link.setAttribute('rel','stylesheet') //添加link标签的rel属性
    link.setAttribute('type','text/css')//设置link标签的type属性
    link.setAttribute('href',href)//设置link标签href属性
    document.getElementsByTagName('head')[0].appendChild(link)//获取head标签，并将link标签添加到head中最后面
}

export function removeCss(href) { //移除 自身href===传入href 的 link标签
    const links = document.getElementsByTagName('link')//获取所有link标签
    for (let i = links.length;i >= 0;i--){ //倒序遍历所有link标签
        const link = links[i]
        if(link && link.getAttribute('href') && link.getAttribute('href') === href){//如果link存在并且link的href等于传入的href
            link.parentNode.removeChild(link)//调用head标签的removeChild去掉link
        }
    }
}

export function removeAllCss() { //移除所有的link标签
    removeCss(`${process.env.VUE_APP_RES_URL}`+'/theme/theme_default.css')
    removeCss(`${process.env.VUE_APP_RES_URL}`+'/theme/theme_eye.css')
    removeCss(`${process.env.VUE_APP_RES_URL}`+'/theme/theme_gold.css')
    removeCss(`${process.env.VUE_APP_RES_URL}`+'/theme/theme_night.css')
}

export function getReadTimeByMinute(fileName) { //以分钟的形式获取时间
    const readTime = getReadTime(fileName)
    if(!readTime) {
        return 0
    } else {
        return Math.ceil(readTime/60)//向上取整
    }
}

export function flatten(array) {//将树状结构变为一维数组结构
    //利用到了 ... 运算符 将数字内容解析
    //array.map 表示对数组进行遍历，获取里面的item，这里得到的是第一层
    //通过concat将第二层结构变成扁平与当前元素进行合并
    //其实就是合并item 和 item 底下的subitem  ，但subitem底下可能又有第三级的subitem，所以用到递归
    return [].concat(...array.map(item => [].concat(item, ...flatten(item.subitems))))
}